{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "2ece4e6c-51d8-41f0-8a47-4ac5d7e68e83",
   "metadata": {},
   "source": [
    "In this notebook we will reproduce the work published in the paper [\"FEP Augmentation as a Means to Solve Data Paucity Problems for Machine Learning in Chemical Biology\"](https://pubs.acs.org/doi/10.1021/acs.jcim.4c00071).  In this paper the authors used FEP data to augment a dataset and generate a predictive model for cSrc activity.  They compare three predictive models.  \n",
    "* A model generated from 11 starting molecules\n",
    "* A model generated from 11 starting molecules augmented by 84 experimental datapoints\n",
    "* A model generated from 11 starting molecules augmented by 84 FEP datapoints "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "3f533410-5bc0-4024-9433-fe9867783702",
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import seaborn as sns\n",
    "import numpy as np\n",
    "from sklearn.model_selection import train_test_split\n",
    "import useful_rdkit_utils as uru\n",
    "from sklearn.metrics import roc_auc_score, roc_curve\n",
    "from sklearn.ensemble import RandomForestClassifier\n",
    "from tqdm.auto import tqdm\n",
    "from statsmodels.stats.multicomp import pairwise_tukeyhsd"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "81030aff-2440-47c3-8666-5f7c27801805",
   "metadata": {},
   "source": [
    "#### 1. Data Preprocessing\n",
    "Read the input data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "06fc7aec-3871-4be6-8fd1-464480165c26",
   "metadata": {},
   "outputs": [],
   "source": [
    "df = pd.read_csv(\"https://raw.githubusercontent.com/PatWalters/practical_cheminformatics_tutorials/refs/heads/main/papers/ML_FEP/cSrc_dataset.csv\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "20bbd8ce-a16e-4767-bb9b-1766f389bcb4",
   "metadata": {},
   "source": [
    "Add an index column to the dataframe and convert the IC50 values to pIC50 values. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 98,
   "id": "be6b9102-1132-4a67-bfde-576f1f16376a",
   "metadata": {},
   "outputs": [],
   "source": [
    "df[\"idx\"] = range(0,len(df))\n",
    "df[\"pIC50\"] = -np.log10(df[\"Src-IC50\"]*1e-9)\n",
    "df[\"pIC50_FEP\"] = -np.log10(df[\"IC50_b_theor(nM)\"]*1e-9)                            "
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5e58b16f-1099-4c9c-bdac-851dc0ecf204",
   "metadata": {},
   "source": [
    "Use the [useful_rdkit_utils](https://pubs.acs.org/doi/10.1021/acs.jcim.4c00071) package to add fingerprint column to the dataframe. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 99,
   "id": "ed2577b0-123b-45ff-bbc7-4d37401963c8",
   "metadata": {},
   "outputs": [],
   "source": [
    "smi2fp = uru.Smi2Fp()\n",
    "df[\"fp\"] = df.Smiles.apply(smi2fp.get_np)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "598260ea-3f79-43f6-9be6-b97111d2c6d5",
   "metadata": {},
   "source": [
    "Plot the distribution of experimental pIC50 values. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 100,
   "id": "9c80c0b1-33cb-4f1f-82b4-ba233a5ee07d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<seaborn.axisgrid.FacetGrid at 0x352126250>"
      ]
     },
     "execution_count": 100,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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rQotSc4bb7wROF9TU+MkJCQ4Tz/9dODYoUOHHK/X67z88suN+l48kq6j7OxsXX/99crKynJ7imt27dqlpKQkdevWTePGjVNJSYnbk0Lqrbfe0qBBg3TTTTcpLi5OAwcO1B/+8Ae3Z7nm+PHjevHFFzVp0qRGf3hNSzJkyBCtW7dOn3/+uSTp008/1YcffqiRI0e6vCw0Tpw4oZMnT6pdu3ZBxyMjI1vds2vf2bNnj8rKyoL6EB0drczMzNN+rHJdmf+NYxa88sor+uSTT87511zOJDMzU8uXL1d6erpKS0s1Z84cXXXVVSooKDjrp7icK7744gstWrRIOTk5+vWvf60tW7bonnvuUUREhCZMmOD2vJBbuXKlDh06pIkTJ7o9JaR+9atfyefzKSMjQ2FhYTp58qQef/xxjRs3zu1pIREVFaXBgwfr0UcfVa9evRQfH6+XX35ZGzdu1A9+8AO357mirKxMkk75TZjx8fGByxqKSJ/Fvn37NG3aNK1Zs+aU/+fYmvzvo4R+/fopMzNTXbt21WuvvabJkye7uCx0ampqNGjQID3xxBOSpIEDB6qgoECLFy9ulZH+05/+pJEjRyopKcntKSH12muv6aWXXtKKFSvUp08f5efna/r06UpKSmo1/w5eeOEFTZo0SRdccIHCwsJ08cUXa+zYsdq2bZvb0845PN19Ftu2bdNXX32liy++WOHh4QoPD9f69ev13HPPKTw8XCdPnnR7ois6duyonj17qri42O0pIZOYmKjevXsHHevVq1ere9pfkv79739r7dq1uv32292eEnL333+/fvWrX+mWW27RRRddpF/84heaMWOG8vLy3J4WMt27d9f69et1+PBh7du3Tx9//LGqq6vVrVs3t6e54ruPTq7PxyrXFZE+i2HDhmnHjh3Kz88PnAYNGqRx48YpPz9fYWFhbk90xeHDh7V7924lJia6PSVkrrjiChUVFQUd+/zzz9W1a1eXFrln2bJliouL0/XXX+/2lJA7evSo2rQJ/k9nWFiYampqXFrknvPOO0+JiYn65ptvtHr1at1www1uT3JFWlqaEhISgj5W2efzafPmzY3+WGWe7j6LqKgo9e3bN+jYeeedp86dO59y/Fx23333adSoUeratau+/PJLzZ49W2FhYRo7dqzb00JmxowZGjJkiJ544gn9/Oc/18cff6wlS5ZoyZIlbk8LqZqaGi1btkwTJkxQeHjr+0/IqFGj9PjjjyslJUV9+vTRP//5T82fP1+TJk1ye1rIrF69Wo7jKD09XcXFxbr//vuVkZFxTn+E8OHDh4OeOdyzZ4/y8/MVExOjlJQUTZ8+XY899ph69OihtLQ0zZw5U0lJSRo9enTjvnGj3hveSrXGH8G6+eabncTERCciIsK54IILnJtvvtkpLi52e1bIvf32207fvn0dr9frZGRkOEuWLHF7UsitXr3akeQUFRW5PcUVPp/PmTZtmpOSkuK0a9fO6datm/PQQw85fr/f7Wkh8+qrrzrdunVzIiIinISEBCc7O9s5dOiQ27Oa1XvvvedIOuU0YcIEx3G+/TGsmTNnOvHx8Y7X63WGDRvWJP8b4aMqAQAwitekAQAwikgDAGAUkQYAwCgiDQCAUUQaAACjiDQAAEYRaQAAjCLSAAAYRaQBADCKSAPQ0KFDNX369KBjxcXFuu2223ThhRfK6/UqLS1NY8eO1datWwPXSU1NlcfjCTo9+eSTQbezfft2XXXVVWrXrp2Sk5M1b968UPyVgHNC6/vt+ADOauvWrRo2bJj69u2r3//+98rIyFBlZaXefPNN3XvvvVq/fn3gunPnztWUKVMC56OiogJ/9vl8Gj58uLKysrR48WLt2LFDkyZNUseOHXXHHXeE9O8EtEREGmgFhg4dGvjUthdeeEFt27bVXXfdpblz58rj8QRd13EcTZw4UT169NAHH3wQ9LGMAwYM0LRp04KuHxUVddrPzH3ppZd0/PhxLV26VBEREerTp4/y8/M1f/58Ig3UAU93A63En//8Z4WHh+vjjz/Wb37zG82fP19//OMfT7lefn6+PvvsM917772nfG6yJHXs2DHo/JNPPqnOnTtr4MCBevrpp3XixInAZRs3btTVV1+tiIiIwLERI0aoqKhI33zzTdP95YBzFI+kgVYiOTlZzz77rDwej9LT07Vjxw49++yzQU9VS9KuXbskSRkZGWe9zXvuuUcXX3yxYmJi9NFHHyk3N1elpaWaP3++JKmsrExpaWlBXxMfHx+4rFOnTk3xVwPOWUQaaCUuv/zyoKe2Bw8erGeeeUYnT54Mul59Pr02Jycn8Od+/fopIiJCd955p/Ly8uT1ehs/GmjleLobQJCePXtKknbu3Fnvr83MzNSJEye0d+9eSVJCQoIOHDgQdJ3vzp/udWwA/x+RBlqJzZs3B53ftGmTevToobCwsKDjAwYMUO/evfXMM8+opqbmlNs5dOjQab9Hfn6+2rRpo7i4OEnfPlrfsGGDqqurA9dZs2aN0tPTeaobqAMiDbQSJSUlysnJUVFRkV5++WU9//zzp7xTW5I8Ho+WLVumzz//XFdddZX+9re/6YsvvtD27dv1+OOP64YbbpD07ZvCFixYoE8//VRffPGFXnrpJc2YMUPjx48PBPjWW29VRESEJk+erM8++0yvvvqqfvOb3wQ9TQ7g9HhNGmglfvnLX6qqqkqXXXaZwsLCNG3atNP+GNRll12mrVu36vHHH9eUKVNUXl6uxMREDRkyRAsWLJAkeb1evfLKK3rkkUfk9/uVlpamGTNmBAU4Ojpa//jHP5Sdna1LLrlEsbGxmjVrFj9+BdSRx6nPu0QAtEhDhw7VgAEDAoEF0DLwdDcAAEYRaQAAjOLpbgAAjOKRNAAARhFpAACMItIAABhFpAEAMIpIAwBgFJEGAMAoIg0AgFFEGgAAo/4fhyTN7EtdF8AAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 500x500 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.displot(df.pIC50)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c31d9719-ec76-4dbf-893e-b5e18d92e2c1",
   "metadata": {},
   "source": [
    "Replace spaces in the column names with underscores, this makes it easier to use the column names in Pandas. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 101,
   "id": "ef9bfc6c-f435-4b1c-8570-090d9a65c9b6",
   "metadata": {},
   "outputs": [],
   "source": [
    "df.columns = [x.replace(\" \",\"_\") for x in df.columns]"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e28ced2e-cd52-4f3e-9e90-6bc2ad4008bc",
   "metadata": {},
   "source": [
    "Label the reference columns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 102,
   "id": "3825de62-db8d-45b5-b741-4bb56d45bd47",
   "metadata": {},
   "outputs": [],
   "source": [
    "df['is_ref'] = [x in ['PP56', 'PP494', 'PP121', 'PP102'] for x in df.Compound_Key]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 103,
   "id": "504e59b3-0bae-4fdf-8151-b8916e65ecb4",
   "metadata": {},
   "outputs": [],
   "source": [
    "pIC50_cutoff = -np.log10(50e-9)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b22b4684-41d9-4f4d-aa02-66a20f316439",
   "metadata": {},
   "source": [
    "Label the active compounds"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 104,
   "id": "c8ea1ca8-f549-4c04-ac1f-efb2148a5965",
   "metadata": {},
   "outputs": [],
   "source": [
    "df['active'] = df.pIC50 > pIC50_cutoff\n",
    "df['active_FEP'] = df.pIC50_FEP > pIC50_cutoff"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b2ddd027-6c72-4c8e-9fbd-c50a37b55a3a",
   "metadata": {},
   "source": [
    "A function to get the control set of molecules, this is the three molecules from the training set plus seven random molecules, five from scaffold 1 and one each from scaffolds 2 and 3. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 105,
   "id": "56d5ec1b-f5a7-4d0f-88e7-980e55b3cf5e",
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_control_set(df):    \n",
    "    df_list = [df.query(\"is_ref\")]\n",
    "    sample_list = [[1,5],[2,1],[3,1]]\n",
    "    for scaffold, count in sample_list:\n",
    "        df_list.append(df.query(\"is_ref == False and Scaffold == @scaffold\").sample(count))    \n",
    "    return pd.concat(df_list)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "901794df-76dd-45c4-8e73-ded89ab9fc5f",
   "metadata": {},
   "source": [
    "#### 2. Build ML models\n",
    "For each modeling strategy (controls, augmented with experimental data, augmented with FEP data) build 100 ML models.  Collect the AUC values along the way. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 106,
   "id": "300a3585-ff7c-40ed-b1e4-e430e6c40782",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "3d9215b99d3d49ada4628437cc1d6800",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/100 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "auc_list = []\n",
    "curve_list = []\n",
    "for i in tqdm(range(0,100)):\n",
    "    control_set = get_control_set(df)\n",
    "    train, test = train_test_split(df.query(\"idx not in @control_set.idx\"),train_size=0.6)\n",
    "    train = pd.concat([control_set, train])\n",
    "    # Controls\n",
    "    rf_control = RandomForestClassifier()\n",
    "    rf_control.fit(np.stack(control_set.fp),control_set.active)\n",
    "    pred_control = rf_control.predict_proba(np.stack(test.fp))\n",
    "    auc_control = roc_auc_score(test.active,pred_control[:,1])\n",
    "    auc_list.append([auc_control,\"control\"])\n",
    "    curve_list.append([roc_curve(test.active,pred_control[:,1]),\"control\"])\n",
    "    # Augmented with experimental data\n",
    "    rf_exp_aug = RandomForestClassifier()\n",
    "    rf_exp_aug.fit(np.stack(train.fp),train.active)\n",
    "    pred_exp_aug = rf_exp_aug.predict_proba(np.stack(test.fp))\n",
    "    auc_exp_aug = roc_auc_score(test.active,pred_exp_aug[:,1])\n",
    "    auc_list.append([auc_exp_aug,\"exp_aug\"])\n",
    "    curve_list.append([roc_curve(test.active,pred_exp_aug[:,1]),\"exp_aug\"])\n",
    "    # Augmented with FEP data\n",
    "    rf_fep_aug = RandomForestClassifier()\n",
    "    rf_fep_aug.fit(np.stack(train.fp),train.active_FEP)\n",
    "    pred_fep_aug = rf_fep_aug.predict_proba(np.stack(test.fp))\n",
    "    auc_fep_aug = roc_auc_score(test.active,pred_fep_aug[:,1])\n",
    "    auc_list.append([auc_fep_aug,\"fep_aug\"])  \n",
    "    curve_list.append([roc_curve(test.active,pred_fep_aug[:,1]),\"fep_aug\"])"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "cd9fbfd4-cac2-4578-bdd8-f0f2ef4ff4a8",
   "metadata": {},
   "source": [
    "#### 3. Analysis\n",
    "Let's reproduce **Figure 7** in the paper, where the authors plot average AUC curves for the three methods. I think we miss some information using this approach, but I want to convince myself I can reproduce the analysis.   \n",
    "First, we'll extract the False Positive Rate (FPR) and True Positive Rate (TPR) curves from the dataframe. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 107,
   "id": "103389c7-afcd-432e-9279-b2dc4d70630e",
   "metadata": {},
   "outputs": [],
   "source": [
    "curve_df = pd.DataFrame(curve_list,columns=[\"curve\",\"method\"])\n",
    "curve_df['fpr'] = [x[0] for x in curve_df.curve]\n",
    "curve_df['tpr'] = [x[1] for x in curve_df.curve]"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6a5bf3dd-0102-4e9f-a67c-83c8b85091c9",
   "metadata": {},
   "source": [
    "Next we'll write a function to interpolate and calcuate the average FPR and TPR curves. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 108,
   "id": "cba8e103-fa4e-4d7c-8e16-3c45a9e6d527",
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_auc_mean(df_in):\n",
    "    mean_fpr = np.linspace(0, 1, 100)\n",
    "    mean_tpr = np.zeros_like(mean_fpr)\n",
    "    n_runs = len(df_in)\n",
    "    for fpr,tpr in df_in[[\"fpr\",\"tpr\"]].values:\n",
    "        interp_tpr = np.interp(mean_fpr, fpr, tpr)\n",
    "        mean_tpr += interp_tpr\n",
    "    mean_tpr /= n_runs\n",
    "    return mean_fpr, mean_tpr"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "774e9646-b4f8-4e5d-a67e-eda5140f7c7d",
   "metadata": {},
   "source": [
    "Now we loop over the three methods, extract average AUC curves and plot the curves. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 109,
   "id": "25b84885-58c4-43b6-89ae-c490fe10ada8",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "point_list = []\n",
    "for method in curve_df.method.unique():\n",
    "    tmp_df = curve_df.query(\"method == @method\")\n",
    "    a,b = get_auc_mean(tmp_df)\n",
    "    for i,j in zip(a,b):\n",
    "        point_list.append([i,j,method])\n",
    "point_df = pd.DataFrame(point_list,columns=[\"fpr\",\"tpr\",\"method\"])\n",
    "ax = sns.lineplot(x=\"fpr\",y=\"tpr\",hue=\"method\",data=point_df)\n",
    "ax.set_xlabel(\"False Positive Rate\")\n",
    "ax.set_ylabel(\"True Positive Rate\")\n",
    "ax.set_title(\"Average ROC AUC\");"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "fc6137d6-dd67-4ead-883c-9988207c79c3",
   "metadata": {},
   "source": [
    "Create a dataframe with the AUC data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 110,
   "id": "c7cd52e4-cc28-4b3b-939d-e4b2ace1f565",
   "metadata": {},
   "outputs": [],
   "source": [
    "auc_df = pd.DataFrame(auc_list,columns=[\"AUC\",\"method\"])"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2a0e9ee3-b8e8-49a6-8fd9-eed8d2f70891",
   "metadata": {},
   "source": [
    "I prefer to use boxplots for this comparison.  With the boxplots, we can see the AUC distributions over the 100 experiments. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 111,
   "id": "adf46623-2b1a-42ec-ae0c-a52744f65f52",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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duxYtWvXTtu2bVNeXp7mz59/fr8EhJRly5bpoYceUvfu3VVWVqYdO3accZy+//77AesyFlsAC8arrKy0IiIirOeee+60ZXl5eVanTp2s77//3t+2fv16y+l0WuXl5ZZlWVZ6erqVmJho/fjjj/4+N954ozVu3Dj/+8TEROupp54K2PYf/vAHS5L16aef+tv27dtnSbK2bt3qbzt69KgVGRlpvfbaa/713G73TzpmhI6amhqrXbt21ocffhjQ/u///u/WLbfcYlmWZb322muWy+Wy5s6da7Vv397at2+fv9/mzZstSdarr77qb/v222+tyMhIa+3atRdU0w033GDdfffd/vcNjd8BAwZYWVlZlmVZ1jvvvGO1adPGKisr8y/ftGmTJclat27dBdUA+z311FNWYmKiZVmNG6eMxZaDOTetwJ49e1RbW6tf/vKXDS4bMGCA2rdv728bPny4fD6f9u7dK4/HI0nq27evwsLC/H1iY2O1a9euc+47PDxcKSkpAftr06aNhg4d6m/r3LmzevfurT179lzQ8SG07d+/XydOnNB1110X0F5XV6dBgwZJkm688UatW7dOjzzyiJ599ln16tXrtO2kpqb6/xwdHd3oMVNfX6/Fixfrtdde0+HDh1VXV6fa2lq1a9eu0cewd+9excfHKyYmxt82ZMiQRq+P0NeYcXoKYzH0EW5agcjIyJ+8jbZt2wa8dzgc8vl8jdr3qTk4aJ1Ozd9av3694uLiApadetbOiRMntHPnToWFhQV9/tXjjz+uZcuWaenSperfv7/at2+vu+66S3V1df4+TqfTP+fnFC6Tti6NGac/FWOx+TDnphXo1auXIiMjlZ+ff9qyyy+/XJ999pmqq6v9bVu3bpXT6VTv3r0bvY/w8HDV19efs9/ll1+uH3/8Udu2bfO3ffvtt9q7d6/69OnT6P2h5fjHyeSXXnppwCs+Pl6SdPfdd8vpdOqdd97R008/rf/+7/8+bTsfffSR/8/fffed9u3bp8svv/yc+9+6davGjBmjW2+9VQMGDFBSUpL27dsX0Kdr164Bc8UqKyt18OBB//vevXvr0KFDqqio8Lft2LGj8b8EhLzGjNNTGIuhjzM3rYDL5dL999+v++67T+Hh4Ro+fLiOHDmi4uJijR8/XllZWUpPT9cDDzygI0eO6M4779SECRP8l6Qao0ePHiooKNDNN9+siIgIdenSpcF+vXr10pgxYzR16lT9/ve/10UXXaS5c+cqLi5OY8aMCdYhI4RcdNFFuueeezRnzhz5fD5deeWV8nq92rp1q6KiotSlSxe98MILKiws1M9+9jPde++9Sk9PV1FRkTp16uTfzkMPPaTOnTvL4/Fo/vz56tKli8aOHXvO/ffq1Uuvv/66PvzwQ3Xq1ElLlixRRUVFQJi+9tprtWrVKo0ePVodO3bUwoULAy7DXnfddbrkkkuUnp6uxx57TFVVVcrMzJQkzkwa4lzjND093d+XsdgC2D3pB82jvr7eWrRokZWYmGi1bdvWSkhIsBYvXmxZlmUVFRVZ11xzjeVyuazo6Ghr6tSpVlVVlX/d9PR0a8yYMQHbmz17tnXVVVf53xcWFlopKSlWRESEdWpYnWli8LFjx6wJEyZYbrfbioyMtNLS0gImkDKh2Dw+n89aunSp1bt3b6tt27ZW165drbS0NGvLli2Wx+Pxj0XLsqy6ujpr8ODB1k033WRZ1t8ncb799ttW3759rfDwcGvIkCHWZ5991qh9f/vtt9aYMWOsDh06WN26dbMyMzOtiRMnBoxpr9drjRs3zoqKirLi4+OtVatWBUzitCzL2rNnjzV8+HArPDzcuuyyy6y3337bkmRt3LgxKL8jNL9/nFBsWWcep++//75lWYzFlsRhWf/n4h4AhJAtW7bommuu0XfffRdSj+XYunWrrrzySu3fv1+XXHKJ3eWgGTAWWw4uSwFAI6xbt04dOnRQr169tH//fs2ePVvDhw/nwwTNjrF4bkwoBtCi/epXv1KHDh0afC1evDho+6mqqtLMmTN12WWXadKkSfr5z3+u//qv/wra9tHyMRZDB5elALRohw8f1smTJxtcFh0drejo6GauCK0VYzF0EG4AAIBRuCwFAACMQrgBAABGIdwAAACjEG4AAIBRCDcAjLNlyxY5HA4dP3486Nt2OBx68803g75dAMFDuAHQol199dW666677C4DQAgh3AAAAKMQbgA0m6uvvlp33nmn7rrrLnXq1Ekej0fPPfecqqurNXnyZF100UW69NJL9c477/jX2b17t//Orx6PRxMmTNDRo0clSZMmTdL777+vZcuWyeFwyOFw6KuvvvKvu3PnTl1xxRVq166dhg0bpr179wbU8+yzz+qSSy5ReHi4evfurdWrVwcs/+KLLzRixAi5XC716dNHmzZtarpfDoCgIdwAaFYvvviiunTpou3bt+vOO+/U9OnTdeONN2rYsGH65JNPdP3112vChAk6ceKEjh8/rmuvvVaDBg3Sxx9/rI0bN6qiokI33XSTJGnZsmVKTU3V1KlTVVZWprKyMsXHx/v3NX/+fD355JP6+OOP1aZNG912223+ZevWrdPs2bN19913a/fu3br99ts1efJkbd68WZLk8/n061//WuHh4dq2bZtWrFih+++/v3l/WQAujJ2PJAfQulx11VXWlVde6X//448/Wu3bt7cmTJjgbysrK7MkWYWFhdbDDz9sXX/99QHbOHTokCXJ2rt3r3+bs2fPDuizefNmS5L13nvv+dvWr19vSbJOnjxpWZZlDRs2zJo6dWrAejfeeKM1atQoy7Is691337XatGljHT582L/8nXfesSRZ69atu/BfAoAmx5kbAM0qJSXF/+ewsDB17txZ/fv397d5PB5J0jfffKPPPvtMmzdvDngA4WWXXSZJ+vLLL89rX7Gxsf7tStKePXs0fPjwgP7Dhw/Xnj17/Mvj4+N18cUX+5enpqae17ECsEcbuwsA0Lq0bds24L3D4Qhoczgckv52Wej777/X6NGj9eijj562nVNhpbH7+sftAjAbZ24AhKyf/exnKi4uVo8ePXTppZcGvNq3by9JCg8PV319/Xlv+/LLL9fWrVsD2rZu3ao+ffr4lx86dEhlZWX+5R999NFPOBoAzYVwAyBkzZw5U8eOHdMtt9yiHTt26Msvv9S7776ryZMn+wNNjx49tG3bNn311Vc6evRoo8/M3HvvvVq1apWeffZZffHFF1qyZIneeOMN3XPPPZKkkSNHKjk5Wenp6frss8/0P//zP5o/f36THSuA4CHcAAhZF198sbZu3ar6+npdf/316t+/v+666y517NhRTuff/vm65557FBYWpj59+qhr164qLS1t1LbHjh2rZcuW6YknnlDfvn31+9//Xn/4wx909dVXS5KcTqfWrVunkydPasiQIZoyZYqys7Ob6lABBJHDsizL7iIAAACChTM3AADAKIQbAABgFMINAAAwCuEGAAAYhXADAACMQrgBAABGIdwAAACjEG4AAIBRCDcAAMAohBsAAGAUwg0AADDK/wMzFL8BaLwVDAAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.boxplot(x=\"method\",y=\"AUC\",data=auc_df);"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "db1dc5cd-328a-47f4-887d-ab9e7d2754f3",
   "metadata": {},
   "source": [
    "Use Tukey's Honestly Signficant Difference (HSD) Test to determine whether the AUC distributions are different. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 112,
   "id": "7338dea0-734b-4a4c-a2a8-24f8459939a6",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      " Multiple Comparison of Means - Tukey HSD, FWER=0.05 \n",
      "=====================================================\n",
      " group1  group2 meandiff p-adj   lower  upper  reject\n",
      "-----------------------------------------------------\n",
      "control exp_aug   0.1112    0.0  0.0913 0.1311   True\n",
      "control fep_aug   0.0923    0.0  0.0724 0.1122   True\n",
      "exp_aug fep_aug  -0.0189 0.0659 -0.0388  0.001  False\n",
      "-----------------------------------------------------\n"
     ]
    }
   ],
   "source": [
    "tukey_res = pairwise_tukeyhsd(endog=auc_df.AUC,groups=auc_df.method)\n",
    "print(tukey_res)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "abc08a40-aee9-48f6-a29d-85aea2c4ad33",
   "metadata": {},
   "source": [
    "Plot the means and confence intervals from the Tukey HSD test.  We use the experimental augentation as a reference.  While the AUC distribution for the FEP augmented models is similar, the confience intervals don't overlap. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 113,
   "id": "9a60baa5-eb7d-48e5-899e-b8b86211d585",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA18AAAIQCAYAAAB+P9RkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABRRklEQVR4nO3deXgUVd728bu7IRtJNxDCHghEHnZBEFR2WQQEBBkFUTYX0BlQxA3REQQewF2iPriPKIKKCqKi7DsOiqCMKKugLCK7WQQT0n3eP3jTQ5MAKUiqaPL9XFcuuivVVafq1yR955w65TLGGAEAAAAACpXb6QYAAAAAQFFA+AIAAAAAGxC+AAAAAMAGhC8AAAAAsAHhCwAAAABsQPgCAAAAABsQvgAAAADABoQvAAAAALAB4QsAAAAAbED4AnBBevzxx+VyufK17pQpU+RyufTLL79Y3s/SpUvlcrm0dOlSy6/F6bVp00Zt2rRxuhm4gOX1/9aJ9835/PywKiMjQ2XLltW0adMKfNs5x/Htt98W+LZP59ChQypRooS++OIL2/YJhDvCFwDLcn7Ju1wurVy5Mtf3jTFKTEyUy+VS165dC2y/EyZM0CeffFJg2ytMaWlpGjNmjBo0aKDY2FhFR0erXr16GjFihH777Tenm4ezaNOmTfA97nK5FBERoWrVqmnw4MHatWvXOW3zt99+0+OPP67vv/++YBt7gWratKlcLpdefvnlAt92UlJSSH3Kli2rli1batasWQW+r4KUkpKiuLg43XTTTfrll19CjuFMX3YEw3MRHx+vO+64Q4899pjTTQHCRjGnGwAgfEVFRWn69Olq0aJFyPJly5Zp9+7dioyMLND9TZgwQTfccIN69OgRsrxfv3666aabCnx/52r79u1q3769du7cqRtvvFGDBw9WRESE/vOf/+jNN9/UrFmztGXLFqebWajmz5/vdBPOW+XKlTVx4kRJUlZWln766Se98sormjdvnjZu3KiYmBhL2/vtt980ZswYJSUlqWHDhoXQ4gvH1q1btWbNGiUlJWnatGn6+9//XuD7aNiwoe6//35JJ87tq6++qp49e+rll1/WXXfdle/t2PXz4/jx40pJSdHw4cPl8XiUkJCgqVOnhqzz7LPPavfu3Xr++edDlickJBRq287HXXfdpRdeeEGLFy9W27ZtnW4OcMEjfAE4Z9dee60+/PBDvfDCCypW7L8/TqZPn67GjRvr4MGDtrTD4/HI4/HYsq+zyc7OVs+ePbVv3z4tXbo0VzAdP368nnzySYdaV/iOHj2qmJgYRUREON2U8+bz+dS3b9+QZdWqVdPQoUO1atUqdejQwaGWXfjeffddlS1bVs8++6xuuOEG/fLLL0pKSirQfVSqVCmkPv3799cll1yi559/3lL4ys/PD2OM/vrrL0VHR59zez///HMdOHBAvXr1kiSVKFEi1/vr/fff15EjR3Itv5DVrl1b9erV05QpUwhfQD4w7BDAOevTp48OHTqkBQsWBJdlZWXpo48+0s0335xr/dNdX5Uz/GbKlCmn3ZfL5dKff/6pt99+OzgUZ+DAgZLyvmYjKSlJXbt21fz589WwYUNFRUWpTp06mjlzZr6O7euvv1anTp3k8/kUExOj1q1ba9WqVWd93ccff6z169fr0UcfzRW8JMnr9Wr8+PEhyz788EM1btxY0dHRKlOmjPr27as9e/aErDNw4EDFxsZq586d6tq1q2JjY1WpUiX93//9nyTphx9+UNu2bVWiRAlVrVpV06dPD3l9zjlavny57rzzTsXHx8vr9ap///46cuRIyLqzZ89Wly5dVLFiRUVGRio5OVnjxo2T3+8PWa9NmzaqV6+e1q5dq1atWikmJkaPPPJI8HunXrvz4osvqm7duoqJiVGpUqV0+eWX52rnd999p86dO8vr9So2Nlbt2rXT6tWr8zyWVatW6b777lNCQoJKlCih66+/XgcOHAhZ99tvv1XHjh1VpkwZRUdHq1q1arrtttty1SW/ypcvL0khf2yQpD179ui2225TuXLlFBkZqbp16+pf//pX8PtLly5VkyZNJEm33npr8D08ZcoUvfDCC/J4PPrjjz+C6z/77LNyuVy67777gsv8fr/i4uI0YsSI4LJAIKBJkyapbt26ioqKUrly5XTnnXfmqqkkffnll2rZsqVKlCihuLg4denSRT/++GPIOjnvsz179qhHjx6KjY1VQkKCHnjggVz1P5Pp06frhhtuUNeuXeXz+XLVuTCUL19etWvX1o4dOyRJ//nPfzRw4EBVr15dUVFRKl++vG677TYdOnQo5HVn+vkxb948XX755YqOjtarr74qSVqwYIFatGihkiVLKjY2VjVr1gy+78/kk08+UVJSkpKTky0dl8vl0uOPP55reVJSUvBn4OkcOXJETZs2VeXKlbV582ZJUmZmpkaPHq1LLrlEkZGRSkxM1EMPPaTMzMzg61q3bq0GDRrkuc2aNWuqY8eOIcs6dOigzz77TMYYS8cGFEWELwDnLCkpSVdddZXee++94LIvv/xSqampuummmwp0X1OnTlVkZKRatmypqVOnaurUqbrzzjvP+JqtW7eqd+/e6ty5syZOnKhixYrpxhtvDAmLeVm8eLFatWqltLQ0jR49WhMmTNAff/yhtm3b6ptvvjnjaz/99FNJJ4Yy5ceUKVPUq1cveTweTZw4UYMGDdLMmTPVokWLkA/j0okP3507d1ZiYqKeeuopJSUlaejQoZoyZYo6deqkyy+/XE8++aTi4uLUv3//4IfQkw0dOlQbN27U448/rv79+2vatGnq0aNHyIemKVOmKDY2Vvfdd59SUlLUuHFjjRo1Sg8//HCu7R06dEidO3dWw4YNNWnSJF199dV5Hufrr7+ue+65R3Xq1NGkSZM0ZswYNWzYUF9//XVwnR9//FEtW7bU+vXr9dBDD+mxxx7Tjh071KZNm5D1ctx9991av369Ro8erb///e/67LPPNHTo0OD39+/fr2uuuUa//PKLHn74Yb344ou65ZZbcoW50/H7/Tp48KAOHjyovXv3avHixcEPrc2bNw+ut2/fPl155ZVauHChhg4dqpSUFF1yySW6/fbbNWnSJEknegfGjh0rSRo8eHDwPdyqVSu1bNlSgUAg5PrJFStWyO12a8WKFcFl3333nTIyMtSqVavgsjvvvFMPPvigmjdvrpSUFN16662aNm2aOnbsqOPHjwfXmzp1qrp06aLY2Fg9+eSTeuyxx/TTTz+pRYsWua4n8vv96tixo+Lj4/XMM8+odevWevbZZ/Xaa6/l67x9/fXX2rZtm/r06aOIiAj17NmzUCaYONXx48e1a9cuxcfHSzoRkrZv365bb71VL774om666Sa9//77uvbaa/MVEjZv3qw+ffqoQ4cOSklJUcOGDfXjjz+qa9euyszM1NixY/Xss8/quuuuy9cfZr766is1atTovI8zvw4ePKi2bdtq3759WrZsmWrWrKlAIKDrrrtOzzzzjLp166YXX3xRPXr00PPPP6/evXsHX9uvXz/95z//0YYNG0K2uWbNGm3ZsiVXz1zjxo31xx9/5ArzAPJgAMCit956y0gya9asMS+99JKJi4szR48eNcYYc+ONN5qrr77aGGNM1apVTZcuXYKvW7JkiZFklixZErK9HTt2GEnmrbfeCi4bPXq0OfVHVIkSJcyAAQNO254dO3YEl1WtWtVIMh9//HFwWWpqqqlQoYK57LLLTtumQCBgatSoYTp27GgCgUBwvaNHj5pq1aqZDh06nPHcXHbZZcbn851xnRxZWVmmbNmypl69eubYsWPB5Z9//rmRZEaNGhVcNmDAACPJTJgwIbjsyJEjJjo62rhcLvP+++8Hl2/atMlIMqNHjw4uyzlHjRs3NllZWcHlTz31lJFkZs+eHXKsp7rzzjtNTEyM+euvv4LLWrdubSSZV155Jdf6rVu3Nq1btw4+7969u6lbt+4Zz0ePHj1MRESE+fnnn4PLfvvtNxMXF2datWqV61jat28fUqPhw4cbj8dj/vjjD2OMMbNmzQq+T63KObZTv2rXrm22b98esu7tt99uKlSoYA4ePBiy/KabbjI+ny94PtesWZPrfW6MMX6/33i9XvPQQw8ZY068B+Pj482NN95oPB6PSU9PN8YY89xzzxm3222OHDlijDFmxYoVRpKZNm1ayPbmzp0bsjw9Pd2ULFnSDBo0KGS933//3fh8vpDlOe+zsWPHhqx72WWXmcaNG+fr3A0dOtQkJiYGazN//nwjyXz33Xch6+X1//bU983pVK1a1VxzzTXmwIED5sCBA2b9+vXmpptuMpLM3XffbYzJ+3383nvvGUlm+fLlZ2xHzs+PuXPnhrz++eefN5LMgQMHztrGkx0/fty4XC5z//33n3G9Ll26mKpVq4YsO/X/8sltPPnn4ck/l/fu3Wvq1q1rqlevbn755ZfgOlOnTjVut9usWLEiZFuvvPKKkWRWrVpljDHmjz/+MFFRUWbEiBEh691zzz2mRIkSJiMjI2T5V199ZSSZDz744IzHB8AYer4AnJdevXrp2LFj+vzzz5Wenq7PP/88zyGHTqhYsaKuv/764POcYXbfffedfv/99zxf8/3332vr1q26+eabdejQoWDPx59//ql27dpp+fLlCgQCp91nWlqa4uLi8tW+b7/9Vvv379c//vEPRUVFBZd36dJFtWrV0pw5c3K95o477gg+LlmypGrWrKkSJUoEryORTgwLKlmypLZv357r9YMHD1bx4sWDz//+97+rWLFiIVNFn3xdS3p6ug4ePKiWLVvq6NGj2rRpU8j2IiMjdeutt571WEuWLKndu3drzZo1eX7f7/dr/vz56tGjh6pXrx5cXqFCBd18881auXKl0tLSch3LybcjaNmypfx+v3799dfgPqUT19qc3AuUX0lJSVqwYIEWLFigL7/8UpMmTVJqaqo6d+4cHN5ojNHHH3+sbt26yRgTfL8cPHhQHTt2VGpqqtatW3fG/bjdbjVr1kzLly+XJG3cuFGHDh3Sww8/LGOM/v3vf0s60RtWr1694HF9+OGH8vl86tChQ8h+GzdurNjYWC1ZskTSiR6gP/74Q3369AlZz+Px6Iorrgiud7JTr5lq2bJlnu+nU2VnZ+uDDz5Q7969g7Vp27ZtoUyvPn/+fCUkJCghIUENGjTQhx9+qH79+gWvqTz5ffzXX3/p4MGDuvLKKyXprDWRTlzfd+rwupxzP3v27DP+HDjV4cOHZYxRqVKl8v2ac7V79261bt1ax48f1/Lly1W1atXg9z788EPVrl1btWrVCnkv5FyrlfNe8Pl86t69u957771gL6Hf79cHH3ygHj16qESJEiH7zDkuu67zBcIZ4QvAeUlISFD79u01ffp0zZw5U36/XzfccIPTzZIkXXLJJbnuFfY///M/knTaqZu3bt0qSRowYEDwg13O1xtvvKHMzEylpqaedp9er1fp6en5al9OSKhZs2au79WqVSv4/RxRUVG5Zj3z+XyqXLlyruP0+Xx5XvdTo0aNkOexsbGqUKFCyPn48ccfdf3118vn88nr9SohISE4zOjUY69UqVK+JtcYMWKEYmNj1bRpU9WoUUNDhgwJGap14MABHT16NM9zUbt2bQUCgVxTvFepUiXkec4HwJzjbt26tf72t79pzJgxKlOmjLp376633nor5NqWMylRooTat2+v9u3bq1OnTho2bJg+/fRTbd68WU888USw3X/88Ydee+21XO+XnFC6f//+s+6rZcuWWrt2rY4dO6YVK1aoQoUKatSokRo0aBAcerhy5Uq1bNky+JqtW7cqNTVVZcuWzbXvjIyM4H5z3tNt27bNtd78+fNztS+v91mpUqXyfD+dav78+Tpw4ICaNm2qbdu2adu2bdqxY4euvvpqvffee5YCy9lcccUVWrBggRYuXKivvvpKBw8e1DvvvBMMXYcPH9awYcNUrlw5RUdHKyEhQdWqVZOU+32cl5x1T9a7d281b95cd9xxh8qVK6ebbrpJM2bMyPdxGRuuierXr5/279+vZcuWqVKlSiHf27p1q3788cdc74Ocn4snvxf69++vnTt3Bt9/Cxcu1L59+/IcUp1zXPm9NyNQlDHbIYDzdvPNN2vQoEH6/fff1blz5+Bfh091ul/MVi7kL2w5H6Kefvrp004HHhsbe9rX16pVS99995127dqlxMTEAm3b6WZkO93yc/mg98cff6h169byer0aO3askpOTFRUVpXXr1mnEiBG5PmTmd/a32rVra/Pmzfr88881d+5cffzxx5o8ebJGjRqlMWPGWG6ndPbjdrlc+uijj7R69Wp99tlnmjdvnm677TY9++yzWr169RnreDqNGzeWz+cL9lLlnI++fftqwIABeb7m0ksvPet2W7RooePHj+vf//63VqxYEQxZLVu21IoVK7Rp0yYdOHAgJHwFAoEz9ijlBKicNk6dOjU4YcjJTp085HxmDs1py8k9sSdbtmzZaa8LtKpMmTJq3779ab/fq1cvffXVV3rwwQfVsGFDxcbGKhAIqFOnTvkKS3m9t6Ojo7V8+XItWbJEc+bM0dy5c/XBBx+obdu2mj9//mnPXenSpeVyufIVYPPrdD83e/bsqXfeeUcpKSnBWyXkCAQCql+/vp577rk8X3vyz6yOHTuqXLlyevfdd9WqVSu9++67Kl++fJ7nPOe4ypQpc66HAxQZhC8A5+3666/XnXfeqdWrV+uDDz447Xo5PROnTiRxag/P6Vj9q+q2bdtkjAl5Xc79tU437XXOTGRer/eMH+xOp1u3bnrvvff07rvvauTIkWdcN2c40ObNm3NN0bx58+aQ4UIFZevWrSEffjMyMrR3715de+21kk7Mynfo0CHNnDkzZGKHvCbvsKpEiRLq3bu3evfuraysLPXs2VPjx4/XyJEjlZCQoJiYmOCMbCfbtGmT3G73OYfZK6+8UldeeaXGjx+v6dOn65ZbbtH7778fMoTTCr/fr4yMDEknAk5cXJz8fv9Z3y9nev82bdpUERERWrFihVasWKEHH3xQktSqVSu9/vrrWrRoUfB5juTkZC1cuFDNmzc/YwjOeU+XLVv2nN7T+fXnn39q9uzZ6t27d5693/fcc4+mTZtWYOHrTI4cOaJFixZpzJgxGjVqVHB5Ti/g+XC73WrXrp3atWun5557ThMmTNCjjz6qJUuWnPb8FitWTMnJyef0/6hUqVK5fmZmZWVp7969ea5/991365JLLtGoUaPk8/lCJspJTk7W+vXr1a5du7P+PPV4PLr55ps1ZcoUPfnkk/rkk080aNCgPANmznHVrl3b4tEBRQ/DDgGct9jYWL388st6/PHH1a1bt9OuV7VqVXk8nmCvQY7Jkyfnaz8lSpTI9SHkTH777TfNmjUr+DwtLU3vvPOOGjZsmGcPgHSiZyM5OVnPPPNM8AP2yU6dyvxUN9xwg+rXr6/x48cHr9U5WXp6uh599FFJ0uWXX66yZcvqlVdeCRkK9+WXX2rjxo3q0qVLvo7Titdeey3k+qeXX35Z2dnZ6ty5s6T/9nqc3GuWlZWV7xqdzqnTe0dERKhOnToyxuj48ePyeDy65pprNHv27JAhkPv27QveyNvr9Vra55EjR3L1/uX0ZuZ36OGplixZooyMjOA03B6PR3/729/08ccf55oZTgp9v+RcJ5PXezgqKkpNmjTRe++9p507d4b0fB07dkwvvPCCkpOTVaFCheBrevXqJb/fr3HjxuXaXnZ2dnA/HTt2lNfr1YQJE/K89u1s7+n8mjVrlv78808NGTJEN9xwQ66vrl276uOPPz7nc29FXu9jScHZJ8/V4cOHcy3L73vqqquu0rfffmt5n8nJybl+Zr722mtnHDHw2GOP6YEHHtDIkSP18ssvB5f36tVLe/bs0euvv57rNceOHdOff/4Zsqxfv346cuSI7rzzTmVkZJz2/mNr166Vz+dT3bp1rRwaUCTR8wWgQJxuyNXJfD6fbrzxRr344otyuVxKTk7W559/nq9rYqQTwWjhwoV67rnnVLFiRVWrVk1XXHHFadf/n//5H91+++1as2aNypUrp3/961/at2+f3nrrrdO+xu1264033lDnzp1Vt25d3XrrrapUqZL27NmjJUuWyOv16rPPPjvt64sXL66ZM2eqffv2atWqlXr16qXmzZurePHi+vHHHzV9+nSVKlVK48ePV/HixfXkk0/q1ltvVevWrdWnTx/t27dPKSkpSkpK0vDhw/N1XqzIyspSu3bt1KtXL23evFmTJ09WixYtdN1110mSmjVrplKlSmnAgAG655575HK5NHXq1PO+VuWaa65R+fLl1bx5c5UrV04bN27USy+9pC5dugQnKPnf//3f4D2U/vGPf6hYsWJ69dVXlZmZqaeeesryPt9++21NnjxZ119/vZKTk5Wenq7XX39dXq832NN3JqmpqXr33XclnQgzmzdv1ssvv6zo6OiQ3oQnnnhCS5Ys0RVXXKFBgwapTp06Onz4sNatW6eFCxcGP7AnJyerZMmSeuWVVxQXF6cSJUroiiuuCF5b1LJlSz3xxBPy+XyqX7++pBO9VTVr1tTmzZtz3dOpdevWuvPOOzVx4kR9//33uuaaa1S8eHFt3bpVH374oVJSUnTDDTfI6/Xq5ZdfVr9+/dSoUSPddNNNSkhI0M6dOzVnzhw1b95cL730kuXze6pp06YpPj5ezZo1y/P71113nV5//XXNmTNHPXv2PO/9nYnX61WrVq301FNP6fjx46pUqZLmz59/3j24Y8eO1fLly9WlSxdVrVpV+/fv1+TJk1W5cuU87+t3su7du2vq1KnasmVL8Bqr/Ljjjjt011136W9/+5s6dOig9evXa968eWcd4vf0008rNTVVQ4YMUVxcnPr27at+/fppxowZuuuuu7RkyRI1b95cfr9fmzZt0owZM4L3Nctx2WWXqV69esGJOk43Vf6CBQvUrVs3rvkC8sOBGRYBhLmTpzQ+k1OnmjfGmAMHDpi//e1vJiYmxpQqVcrceeedZsOGDfmaan7Tpk2mVatWJjo62kgKTrN8uqmiu3TpYubNm2cuvfRSExkZaWrVqmU+/PDDkG2ebvr77777zvTs2dPEx8ebyMhIU7VqVdOrVy+zaNGifJ2jI0eOmFGjRpn69eubmJgYExUVZerVq2dGjhxp9u7dG7LuBx98YC677DITGRlpSpcubW655Raze/fukHUGDBhgSpQokWs/rVu3znMK91PPfc45WrZsmRk8eLApVaqUiY2NNbfccos5dOhQyGtXrVplrrzyShMdHW0qVqxoHnroITNv3rxc5+l0+8753slThr/66qumVatWwfOZnJxsHnzwQZOamhryunXr1pmOHTua2NhYExMTY66++mrz1VdfhaxzuvffqbVct26d6dOnj6lSpYqJjIw0ZcuWNV27djXffvttnm0+tf06aYp5l8tlSpcuba677jqzdu3aXOvv27fPDBkyxCQmJprixYub8uXLm3bt2pnXXnstZL3Zs2ebOnXqmGLFiuV6z8+ZM8dIMp07dw55zR133GEkmTfffDPP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vfRSM2zYsEI+kvBWGHU4fPiwqVq1qhk4cKD5+uuvzfbt2828efPMtm3b7DqssFQYtRg/fryJj483n3/+udmxY4f58MMPTWxsrElJSbHrsMKO1To89NBDpmLFimbOnDnm559/NpMnTzZRUVFm3bp157xNnFAYtXDidzbhqwhp2rSpGTJkSPC53+83FStWNBMnTszX659//nkTFxcX8oasW7euGTt2bMh6jRo1Mo8++mjBNPoiZbUWQ4YMMW3btg1Zdt9995nmzZuf8zZROHU41f79+40ks2zZsoJp9EWqsGqRnp5uatSoYRYsWGBat25N+DqLwqjDiBEjTIsWLQqnwRexwqhFly5dzG233RayTs+ePc0tt9xSgC2/uFitQ4UKFcxLL70UsuzUc8zv63NTGLU4lR2/sxl2WERkZWVp7dq1at++fXCZ2+1W+/bt9e9//ztf23jzzTd10003qUSJEsFlzZo106effqo9e/bIGKMlS5Zoy5Ytuuaaawr8GC4W51KLZs2aae3atcHu9e3bt+uLL77Qtddee87bLOoKow55SU1NlSSVLl26AFt/cSnMWgwZMkRdunQJ2TbyVlh1+PTTT3X55ZfrxhtvVNmyZXXZZZfp9ddfL9yDCXOFVYtmzZpp0aJF2rJliyRp/fr1WrlypTp37lyIRxO+zqUOmZmZioqKClkWHR2tlStXnvM2UTi1yIsdv7OLFdqWcUE5ePCg/H6/ypUrF7K8XLly2rRp01lf/80332jDhg168803Q5a/+OKLGjx4sCpXrqxixYrJ7Xbr9ddfV6tWrQq0/ReTc6nFzTffrIMHD6pFixYyxig7O1t33XWXHnnkkXPeZlFXGHU4VSAQ0L333qvmzZurXr16BX4MF4vCqsX777+vdevWac2aNYXa/otFYdVh+/btevnll3XffffpkUce0Zo1a3TPPfcoIiJCAwYMKNRjCleFVYuHH35YaWlpqlWrljwej/x+v8aPH69bbrmlUI8nXJ1LHTp27KjnnntOrVq1UnJyshYtWqSZM2fK7/ef8zZROLU4lV2/s+n5Qr68+eabql+/vpo2bRqy/MUXX9Tq1av16aefau3atXr22Wc1ZMgQLVy40KGWXpyWLl2qCRMmaPLkyVq3bp1mzpypOXPmaNy4cU43rUixWochQ4Zow4YNev/9921u6cXvbLXYtWuXhg0bpmnTpuX6yycKTn7+TwQCATVq1EgTJkzQZZddpsGDB2vQoEFMzlTA8lOLGTNmaNq0aZo+fbrWrVunt99+W88884zefvttB1t+cUlJSVGNGjVUq1YtRUREaOjQobr11lvldvOR225Wa2Hb7+xCG9CIC0pmZqbxeDxm1qxZIcv79+9vrrvuujO+NiMjw3i9XjNp0qSQ5UePHjXFixc3n3/+ecjy22+/3XTs2LFA2n0xOpdatGjRwjzwwAMhy6ZOnWqio6ON3+8/r/oWVYVRh5MNGTLEVK5c2Wzfvr1A230xKoxazJo1y0gyHo8n+CXJuFwu4/F4THZ2dmEdTtgqrP8TVapUMbfffnvIOpMnTzYVK1YsuMZfZAqrFpUrV851Dcy4ceNMzZo1C67xF5Hz+d167Ngxs3v3bhMIBMxDDz1k6tSpc97bLMoKoxYns/N3NjG8iIiIiFDjxo21aNGi4LJAIKBFixbpqquuOuNrP/zwQ2VmZqpv374hy48fP67jx4/n+guCx+NRIBAouMZfZM6lFkePHs3zPEuSMea86ltUFUYdcv4dOnSoZs2apcWLF6tatWqFdAQXj8KoRbt27fTDDz/o+++/D35dfvnluuWWW/T9998H18V/Fdb/iebNm+eaunnLli2qWrVqQTb/olJYtTjdOvzOztv5/G6NiopSpUqVlJ2drY8//ljdu3c/720WZYVRC8mh39mFHu9wwXj//fdNZGSkmTJlivnpp5/M4MGDTcmSJc3vv/9ujDGmX79+5uGHH871uhYtWpjevXvnuc3WrVubunXrmiVLlpjt27ebt956y0RFRZnJkycX6rGEO6u1GD16tImLizPvvfee2b59u5k/f75JTk42vXr1yvc2kVth1OHvf/+78fl8ZunSpSG3ajh69KjtxxdOCqMWp2K2w7MrjDp88803plixYmb8+PFm69atZtq0aSYmJsa8++67th9fOCmMWgwYMMBUqlQpONX8zJkzTZkyZcxDDz1k+/GFC6t1WL16tfn444/Nzz//bJYvX27atm1rqlWrZo4cOZLvbSJvhVELJ35nE76KmBdffNFUqVLFREREmKZNm5rVq1cHv9e6dWszYMCAkPU3bdpkJJn58+fnub29e/eagQMHmooVK5qoqChTs2ZN8+yzz5pAIFCYh3FRsFKL48ePm8cff9wkJyebqKgok5iYaP7xj3+E/AA52zaRt4Kug6Q8v06+Px7yVhj/J05G+MqfwqjDZ599ZurVq2ciIyNNrVq1zGuvvWbT0YS3gq5FWlqaGTZsmKlSpYqJiooy1atXN48++qjJzMy08ajCj5U6LF261NSuXdtERkaa+Ph4069fP7Nnzx5L28TpFXQtnPid7fr/OwYAAAAAFCKu+QIAAAAAGxC+AAAAAMAGhC8AAAAAsAHhCwAAAABsQPgCAAAAABsQvgAAAADABoQvAAAAALAB4QsAAAAAbED4AgAAAAAbEL4AAAAAwAaELwAAAACwAeELAAAAAGzw/wAw12qh6fTbIAAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 1000x600 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "_ = tukey_res.plot_simultaneous(comparison_name=\"exp_aug\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "7f100228-1bdc-44f6-bff9-448153ac9423",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.11.10"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
